|
Technical Q&AOPS 20 - 固定小数点演算の丸め(1999 年 5 月 17 日)
Q: FixMul (3, 1 << 15) (3*0.5) を呼び出すと、実行結果は 2 になりますが、FixMul (-3, 1 << 15) の実行結果は -1 と評価されます。さらに、68K Mac では、FixMul (-3, 1 << 15) の実行結果は -2 と評価されます。これはどういうことなのですか。 A: この問題は、PowerPC ベースの Macintosh でQuickDraw を正しく動作させるために必要な丸めに関連しています。 固定小数点演算ルーチンは切り上げを行い、負の数の場合はゼロに近い整数になります。このため、-1.5 は -1 に切り上げられ、1.5 は 2 に切り上げられます。 この動作が変更される予定はありません。また、この動作が問題の原因になる場合は、独自の固定小数点ルーチンを書くか、丸めの方向を変えるために Apple の固定小数点ルーチンをラッパーとして使う必要があります。
-- Mark Cookson Worldwide Developer Technical Support Technical Q&As | Contents Previous Question | Next Question To contact us, please use the Contact Us page. |